import random

# 初始化角色信息
character = {
    "姓名": "小明",
    "健康": 100,
    "心情": 100,
    "金钱": 100,
    "社交": 50
}

# 事件列表
events = [
    {
        "名称": "加班",
        "描述": "你的老板要求你加班，你努力工作获得了额外收入，但健康和心情有所下降。",
        "影响": {
            "健康": -20,
            "心情": -15,
            "金钱": 50
        }
    },
    {
        "名称": "朋友聚会",
        "描述": "你和朋友一起聚会，度过了愉快的时光，心情和社交值提升，但花费了一些金钱。",
        "影响": {
            "心情": 20,
            "社交": 15,
            "金钱": -30
        }
    },
    {
        "名称": "健身",
        "描述": "你去健身房锻炼，身体更健康了，但心情有些疲惫。",
        "影响": {
            "健康": 25,
            "心情": -10
        }
    },
    {
        "名称": "生病",
        "描述": "你生病了，健康值大幅下降，还需要花费金钱看病。",
        "影响": {
            "健康": -50,
            "金钱": -50
        }
    }
]


# 显示角色状态
def show_character_status():
    print(f"姓名: {character['姓名']}")
    print(f"健康: {character['健康']}")
    print(f"心情: {character['心情']}")
    print(f"金钱: {character['金钱']}")
    print(f"社交: {character['社交']}")


# 处理事件
def handle_event():
    event = random.choice(events)
    print(event["描述"])
    for key, value in event["影响"].items():
        character[key] += value
        if character[key] < 0:
            character[key] = 0
    print("事件处理完毕，角色状态已更新。")


# 工作行动
def work():
    print("你去上班了，努力工作获得了收入，但健康和心情有所下降。")
    character["健康"] -= 10
    character["心情"] -= 10
    character["金钱"] += 30
    if character["健康"] < 0:
        character["健康"] = 0
    if character["心情"] < 0:
        character["心情"] = 0


# 休息行动
def rest():
    print("你好好休息了一下，健康和心情都得到了提升。")
    character["健康"] += 20
    character["心情"] += 20
    if character["健康"] > 100:
        character["健康"] = 100
    if character["心情"] > 100:
        character["心情"] = 100


# 社交行动
def socialize():
    print("你和朋友出去玩，心情和社交值提升，但花费了一些金钱。")
    character["心情"] += 15
    character["社交"] += 15
    character["金钱"] -= 20
    if character["金钱"] < 0:
        character["金钱"] = 0
    if character["心情"] > 100:
        character["心情"] = 100


# 检查游戏是否结束
def check_game_over():
    if character["健康"] <= 0:
        print("你的健康状况太差，游戏结束！")
        return True
    elif character["金钱"] <= 0:
        print("你破产了，游戏结束！")
        return True
    return False


# 主游戏循环
while True:
    show_character_status()
    print("\n请选择操作：")
    print("1. 处理随机事件")
    print("2. 工作")
    print("3. 休息")
    print("4. 社交")
    print("5. 结束游戏")
    choice = input("请输入选项编号：")
    if choice == "1":
        handle_event()
    elif choice == "2":
        work()
    elif choice == "3":
        rest()
    elif choice == "4":
        socialize()
    elif choice == "5":
        print("游戏结束，感谢你的参与！")
        break
    else:
        print("无效的选项，请重新输入。")
    if check_game_over():
        break